/*
 * BitHandlerOutput.h
 *
 *  Created on: 15/05/2010
 *      Author: gus
 */

#ifndef BITHANDLEROUTPUT_H_
#define BITHANDLEROUTPUT_H_

#include <iostream>
#include <fstream>
#include <bitset>

using namespace std;
// los bits le van llegando a cuentagotas a un objeto de esta clase. Este los va guardando hasta
// q logra juntar 8. En ese momento, lo convierte en un char y lo escribe en el bloque
// asumo q los bits van a llegarle en forma de bool...

class BitHandlerOutput {

 private:

         ofstream archSalida;
         bitset<8*sizeof(char)> bitSet;
         int indexBitset; // posicion del proximo bit q sera seteado
         char ultimoCharEscrito;
         char vectorBuffer[50];//tamBloque=50;
		 int indiceVector;
 public:

         BitHandlerOutput();
         BitHandlerOutput(const char* fileName, ios::openmode);
         void siguienteBitEsUno(bool);
         void escribirSiguienteChar();
         void escribirSiguienteChar_TerminarRelleno();
         void rellenarConCeros();
         void seek(int pos);
         char getUltimoCharEscrito();
         virtual ~BitHandlerOutput();
         void cerrarArchivo();
 };

#endif /* BITHANDLEROUTPUT_H_ */
